home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / phyzzx / phyzzx.tex (.txt) < prev   
Texinfo Document  |  1992-08-26  |  36KB  |  766 lines

  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
  3. %%%   This is PHYZZX macro package.   % % % % % % % % % % % % % % % % %
  4. %% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
  5. %%%  This version of PHYZZX should be used with Version >1.0 of TEX % %
  6. %% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
  7. %%%   To preload both PLAIN and PHYZZX, begin your file with    % % % %
  8. %%%  a line "%macropackage=phyzzx" instead of "\input phyzzx".  % % % %
  9. %% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
  10. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  11. %%%%%%%  Created by Vadim Kaplunovsky in June 1984.   %%%%%%%%%%%%%%%%%%
  12. % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
  13. %%%%%%%%%%%%  Latest update/debug: April 27, 1988   %%%%%%%%%%%%%%%%%%%%
  14. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  15. \expandafter\ifx\csname phyzzx\endcsname\relax
  16.  \message{It is better to use PHYZZX format than to
  17.           \string\input\space PHYZZX}\else
  18.  \wlog{PHYZZX macros are already loaded and are not
  19.           \string\input\space again}%
  20.  \endinput \fi
  21. \catcode`\@=11 % This allows us to modify PLAIN macros.
  22. \let\rel@x=\relax
  23. \let\n@expand=\relax
  24. \def\pr@tect{\let\n@expand=\noexpand}
  25. \let\protect=\pr@tect
  26. \let\gl@bal=\global
  27. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  28. % First, I define fonts and basic spacing parameters
  29. \newfam\cpfam
  30. \newdimen\b@gheight             \b@gheight=12pt
  31. \newcount\f@ntkey               \f@ntkey=0
  32. \def\f@m{\afterassignment\samef@nt\f@ntkey=}
  33. \def\samef@nt{\fam=\f@ntkey \the\textfont\f@ntkey\rel@x}
  34. \def\setstr@t{\setbox\strutbox=\hbox{\vrule height 0.85\b@gheight
  35.                                 depth 0.35\b@gheight width\z@ }}
  36. \input phyzzx.fonts
  37. % Actual font definitions are kept in a separate file
  38. % to facilitate font substitution.
  39. \def\rm{\n@expand\f@m0 }
  40. \def\mit{\n@expand\f@m1 }         \let\oldstyle=\mit
  41. \def\cal{\n@expand\f@m2 }
  42. \def\it{\n@expand\f@m\itfam}
  43. \def\sl{\n@expand\f@m\slfam}
  44. \def\bf{\n@expand\f@m\bffam}
  45. \def\tt{\n@expand\f@m\ttfam}
  46. \def\caps{\n@expand\f@m\cpfam}    \let\cp=\caps
  47. \def\em@{\rel@x\ifnum\f@ntkey=0 \it \else
  48.         \ifnum\f@ntkey=\bffam \it \else \rm \fi \fi }
  49. \def\em{\n@expand\em@}
  50. \def\fourteenpoint{\fourteenf@nts \samef@nt \b@gheight=14pt \setstr@t }
  51. \def\twelvepoint{\twelvef@nts \samef@nt \b@gheight=12pt \setstr@t }
  52. \def\tenpoint{\tenf@nts \samef@nt \b@gheight=10pt \setstr@t }
  53. \normalbaselineskip = 20pt plus 0.2pt minus 0.1pt
  54. \normallineskip = 1.5pt plus 0.1pt minus 0.1pt
  55. \normallineskiplimit = 1.5pt
  56. \newskip\normaldisplayskip
  57. \normaldisplayskip = 20pt plus 5pt minus 10pt
  58. \newskip\normaldispshortskip
  59. \normaldispshortskip = 6pt plus 5pt
  60. \newskip\normalparskip
  61. \normalparskip = 6pt plus 2pt minus 1pt
  62. \newskip\skipregister
  63. \skipregister = 5pt plus 2pt minus 1.5pt
  64. \newif\ifsingl@
  65. \newif\ifdoubl@
  66. \newif\iftwelv@  \twelv@true
  67. \def\singlespace{\singl@true\doubl@false\spaces@t}
  68. \def\doublespace{\singl@false\doubl@true\spaces@t}
  69. \def\normalspace{\singl@false\doubl@false\spaces@t}
  70. \def\Tenpoint{\tenpoint\twelv@false\spaces@t}
  71. \def\Twelvepoint{\twelvepoint\twelv@true\spaces@t}
  72. \def\spaces@t{\rel@x
  73.       \iftwelv@ \ifsingl@\subspaces@t3:4;\else\subspaces@t1:1;\fi
  74.        \else \ifsingl@\subspaces@t3:5;\else\subspaces@t4:5;\fi \fi
  75.       \ifdoubl@ \multiply\baselineskip by 5
  76.          \divide\baselineskip by 4 \fi }
  77. \def\subspaces@t#1:#2;{
  78.       \baselineskip = \normalbaselineskip
  79.       \multiply\baselineskip by #1 \divide\baselineskip by #2
  80.       \lineskip = \normallineskip
  81.       \multiply\lineskip by #1 \divide\lineskip by #2
  82.       \lineskiplimit = \normallineskiplimit
  83.       \multiply\lineskiplimit by #1 \divide\lineskiplimit by #2
  84.       \parskip = \normalparskip
  85.       \multiply\parskip by #1 \divide\parskip by #2
  86.       \abovedisplayskip = \normaldisplayskip
  87.       \multiply\abovedisplayskip by #1 \divide\abovedisplayskip by #2
  88.       \belowdisplayskip = \abovedisplayskip
  89.       \abovedisplayshortskip = \normaldispshortskip
  90.       \multiply\abovedisplayshortskip by #1
  91.         \divide\abovedisplayshortskip by #2
  92.       \belowdisplayshortskip = \abovedisplayshortskip
  93.       \advance\belowdisplayshortskip by \belowdisplayskip
  94.       \divide\belowdisplayshortskip by 2
  95.       \smallskipamount = \skipregister
  96.       \multiply\smallskipamount by #1 \divide\smallskipamount by #2
  97.       \medskipamount = \smallskipamount \multiply\medskipamount by 2
  98.       \bigskipamount = \smallskipamount \multiply\bigskipamount by 4 }
  99. \def\normalbaselines{ \baselineskip=\normalbaselineskip
  100.    \lineskip=\normallineskip \lineskiplimit=\normallineskip
  101.    \iftwelv@\else \multiply\baselineskip by 4 \divide\baselineskip by 5
  102.      \multiply\lineskiplimit by 4 \divide\lineskiplimit by 5
  103.      \multiply\lineskip by 4 \divide\lineskip by 5 \fi }
  104. \Twelvepoint  % That's the default
  105. \interlinepenalty=50
  106. \interfootnotelinepenalty=5000
  107. \predisplaypenalty=9000
  108. \postdisplaypenalty=500
  109. \hfuzz=1pt
  110. \vfuzz=0.2pt
  111. \newdimen\HOFFSET  \HOFFSET=0pt
  112. \newdimen\VOFFSET  \VOFFSET=0pt
  113. \newdimen\HSWING   \HSWING=0pt
  114. \dimen\footins=8in
  115. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  116. %   Next, I define output routines, footnotes & related stuff.
  117. \newskip\pagebottomfiller
  118. \pagebottomfiller=\z@ plus \z@ minus \z@
  119. \def\pagecontents{
  120.    \ifvoid\topins\else\unvbox\topins\vskip\skip\topins\fi
  121.    \dimen@ = \dp255 \unvbox255
  122.    \vskip\pagebottomfiller
  123.    \ifvoid\footins\else\vskip\skip\footins\footrule\unvbox\footins\fi
  124.    \ifr@ggedbottom \kern-\dimen@ \vfil \fi }
  125. \def\makeheadline{\vbox to 0pt{ \skip@=\topskip
  126.       \advance\skip@ by -12pt \advance\skip@ by -2\normalbaselineskip
  127.       \vskip\skip@ \line{\vbox to 12pt{}\the\headline} \vss
  128.       }\nointerlineskip}
  129. \def\makefootline{\baselineskip = 1.5\normalbaselineskip
  130.                  \line{\the\footline}}
  131. \newif\iffrontpage
  132. \newif\ifp@genum
  133. \def\nopagenumbers{\p@genumfalse}
  134. \def\pagenumbers{\p@genumtrue}
  135. \pagenumbers
  136. \newtoks\paperheadline
  137. \newtoks\paperfootline
  138. \newtoks\letterheadline
  139. \newtoks\letterfootline
  140. \newtoks\letterinfo
  141. \newtoks\date
  142. \paperheadline={\hfil}
  143. \paperfootline={\hss\iffrontpage\else\ifp@genum\tenrm\folio\hss\fi\fi}
  144. \letterheadline{\iffrontpage \hfil \else
  145.     \rm \ifp@genum page~~\folio\fi \hfil\the\date \fi}
  146. \letterfootline={\iffrontpage\the\letterinfo\else\hfil\fi}
  147. \letterinfo={\hfil}
  148. \def\monthname{\rel@x\ifcase\month 0/\or January\or February\or
  149.    March\or April\or May\or June\or July\or August\or September\or
  150.    October\or November\or December\else\number\month/\fi}
  151. \def\today{\monthname~\number\day, \number\year}
  152. \date={\today}
  153. \headline=\paperheadline % The default is
  154. \footline=\paperfootline % \papers
  155. \countdef\pageno=1      \countdef\pagen@=0
  156. \countdef\pagenumber=1  \pagenumber=1
  157. \def\advancepageno{\gl@bal\advance\pagen@ by 1
  158.    \ifnum\pagenumber<0 \gl@bal\advance\pagenumber by -1
  159.     \else\gl@bal\advance\pagenumber by 1 \fi
  160.     \gl@bal\frontpagefalse  \swing@ }
  161. \def\folio{\ifnum\pagenumber<0 \romannumeral-\pagenumber
  162.            \else \number\pagenumber \fi }
  163. \def\swing@{\ifodd\pagenumber \gl@bal\advance\hoffset by -\HSWING
  164.              \else \gl@bal\advance\hoffset by \HSWING \fi }
  165. \def\footrule{\dimen@=\prevdepth\nointerlineskip
  166.    \vbox to 0pt{\vskip -0.25\baselineskip \hrule width 0.35\hsize \vss}
  167.    \prevdepth=\dimen@ }
  168. \let\footnotespecial=\rel@x
  169. \newdimen\footindent
  170. \footindent=24pt
  171. \def\Textindent#1{\noindent\llap{#1\enspace}\ignorespaces}
  172. \def\Vfootnote#1{\insert\footins\bgroup
  173.    \interlinepenalty=\interfootnotelinepenalty \floatingpenalty=20000
  174.    \singl@true\doubl@false\Tenpoint
  175.    \splittopskip=\ht\strutbox \boxmaxdepth=\dp\strutbox
  176.    \leftskip=\footindent \rightskip=\z@skip
  177.    \parindent=0.5\footindent \parfillskip=0pt plus 1fil
  178.    \spaceskip=\z@skip \xspaceskip=\z@skip \footnotespecial
  179.    \Textindent{#1}\footstrut\futurelet\next\fo@t}
  180. \def\Footnote#1{\attach{${#1}$}\Vfootnote{#1}}
  181. \def\vfootnote#1{\Vfootnote{${#1}$}}
  182. \def\footnote#1{\attach{#1}\vfootnote{#1}}
  183. \def\footattach{\attach\footsymbol}
  184. \def\foot{\attach\footsymbolgen\vfootnote{\footsymbol}}
  185. \let\footsymbol=\star
  186. \newcount\lastf@@t           \lastf@@t=-1
  187. \newcount\footsymbolcount    \footsymbolcount=0
  188. \newif\ifPhysRev
  189. \def\footsymbolgen{\bumpfootsymbolcount \generatefootsymbol \footsymbol }
  190. \def\bumpfootsymbolcount{\rel@x
  191.    \iffrontpage \bumpfootsymbolpos \else \advance\lastf@@t by 1
  192.      \ifPhysRev \bumpfootsymbolneg \else \bumpfootsymbolpos \fi \fi
  193.    \gl@bal\lastf@@t=\pagen@ }
  194. \def\bumpfootsymbolpos{\ifnum\footsymbolcount <0
  195.                             \gl@bal\footsymbolcount =0 \fi
  196.     \ifnum\lastf@@t<\pagen@ \gl@bal\footsymbolcount=0
  197.      \else \gl@bal\advance\footsymbolcount by 1 \fi }
  198. \def\bumpfootsymbolneg{\ifnum\footsymbolcount >0
  199.              \gl@bal\footsymbolcount =0 \fi
  200.          \gl@bal\advance\footsymbolcount by -1 }
  201. \def\fd@f#1 {\xdef\footsymbol{\mathchar"#1 }}
  202. \def\generatefootsymbol{\ifcase\footsymbolcount \fd@f 13F \or \fd@f 279
  203.         \or \fd@f 27A \or \fd@f 278 \or \fd@f 27B \else
  204.         \ifnum\footsymbolcount <0 \fd@f{023 \number-\footsymbolcount }
  205.          \else \fd@f 203 {\loop \ifnum\footsymbolcount >5
  206.                 \fd@f{203 \footsymbol } \advance\footsymbolcount by -1
  207.                 \repeat }\fi \fi }
  208. \def\nonfrenchspacing{\sfcode`\.=3001 \sfcode`\!=3000 \sfcode`\?=3000
  209.         \sfcode`\:=2000 \sfcode`\;=1500 \sfcode`\,=1251 }
  210. \nonfrenchspacing
  211. \newdimen\d@twidth
  212. {\setbox0=\hbox{s.} \gl@bal\d@twidth=\wd0 \setbox0=\hbox{s}
  213.         \gl@bal\advance\d@twidth by -\wd0 }
  214. \def\removehglue{\loop \unskip \ifdim\lastskip >\z@ \repeat }
  215. \def\roll@ver#1{\removehglue \nobreak \count255 =\spacefactor \dimen@=\z@
  216.         \ifnum\count255 =3001 \dimen@=\d@twidth \fi
  217.         \ifnum\count255 =1251 \dimen@=\d@twidth \fi
  218.     \iftwelv@ \kern-\dimen@ \else \kern-0.83\dimen@ \fi
  219.    #1\spacefactor=\count255 }
  220. \def\step@ver#1{\rel@x \ifmmode #1\else \ifhmode
  221.         \roll@ver{${}#1$}\else {\setbox0=\hbox{${}#1$}}\fi\fi }
  222. \def\attach#1{\step@ver{\strut^{\mkern 2mu #1} }}
  223. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  224. %   Here come chapter, section, subsection & appendix macros.
  225. \newcount\chapternumber      \chapternumber=0
  226. \newcount\sectionnumber      \sectionnumber=0
  227. \newcount\equanumber         \equanumber=0
  228. \let\chapterlabel=\rel@x
  229. \let\sectionlabel=\rel@x
  230. \newtoks\chapterstyle        \chapterstyle={\Number}
  231. \newtoks\sectionstyle        \sectionstyle={\Number}
  232. \newskip\chapterskip         \chapterskip=\bigskipamount
  233. \newskip\sectionskip         \sectionskip=\medskipamount
  234. \newskip\headskip            \headskip=8pt plus 3pt minus 3pt
  235. \newdimen\chapterminspace    \chapterminspace=15pc
  236. \newdimen\sectionminspace    \sectionminspace=10pc
  237. \newdimen\referenceminspace  \referenceminspace=20pc
  238. \newif\ifcn@                 \cn@true
  239. \newif\ifcn@@                \cn@@false
  240. \def\numberedchapters{\cn@true}
  241. \def\unnumberedchapters{\cn@false\sequentialequations}
  242. \def\chapterreset{\gl@bal\advance\chapternumber by 1
  243.    \ifnum\equanumber<0 \else\gl@bal\equanumber=0\fi
  244.    \sectionnumber=0 \let\sectionlabel=\rel@x
  245.    \ifcn@ \gl@bal\cn@@true {\pr@tect
  246.        \xdef\chapterlabel{\the\chapterstyle{\the\chapternumber}}}%
  247.     \else \gl@bal\cn@@false \gdef\chapterlabel{\rel@x}\fi }
  248. \def\@alpha#1{\count255='140 \advance\count255 by #1\char\count255}
  249.  \def\alphabetic{\n@expand\@alpha}
  250. \def\@Alpha#1{\count255='100 \advance\count255 by #1\char\count255}
  251.  \def\Alphabetic{\n@expand\@Alpha}
  252. \def\@Roman#1{\uppercase\expandafter{\romannumeral #1}}
  253.  \def\Roman{\n@expand\@Roman}
  254. \def\@roman#1{\romannumeral #1}    \def\roman{\n@expand\@roman}
  255. \def\@number#1{\number #1}         \def\Number{\n@expand\@number}
  256. \def\BLANK#1{\rel@x}               \let\BLANC=\BLANK
  257. \def\titleparagraphs{\interlinepenalty=9999
  258.      \leftskip=0.03\hsize plus 0.22\hsize minus 0.03\hsize
  259.      \rightskip=\leftskip \parfillskip=0pt
  260.      \hyphenpenalty=9000 \exhyphenpenalty=9000
  261.      \tolerance=9999 \pretolerance=9000
  262.      \spaceskip=0.333em \xspaceskip=0.5em }
  263. \def\titlestyle#1{\par\begingroup \titleparagraphs
  264.      \iftwelv@\fourteenpoint\else\twelvepoint\fi
  265.    \noindent #1\par\endgroup }
  266. \def\spacecheck#1{\dimen@=\pagegoal\advance\dimen@ by -\pagetotal
  267.    \ifdim\dimen@<#1 \ifdim\dimen@>0pt \vfil\break \fi\fi}
  268. \def\chapter#1{\par \penalty-300 \vskip\chapterskip
  269.    \spacecheck\chapterminspace
  270.    \chapterreset \titlestyle{\ifcn@@\chapterlabel.~\fi #1}
  271.    \nobreak\vskip\headskip \penalty 30000
  272.    {\pr@tect\wlog{\string\chapter\space \chapterlabel}} }
  273. \let\chap=\chapter
  274. \def\section#1{\par \ifnum\lastpenalty=30000\else
  275.    \penalty-200\vskip\sectionskip \spacecheck\sectionminspace\fi
  276.    \gl@bal\advance\sectionnumber by 1
  277.    {\pr@tect
  278.    \xdef\sectionlabel{\ifcn@@ \chapterlabel.\fi
  279.        \the\sectionstyle{\the\sectionnumber}}%
  280.    \wlog{\string\section\space \sectionlabel}}%
  281.    \noindent {\caps\enspace\sectionlabel.~~#1}\par
  282.    \nobreak\vskip\headskip \penalty 30000 }
  283. \def\subsection#1{\par
  284.    \ifnum\the\lastpenalty=30000\else \penalty-100\smallskip \fi
  285.    \noindent\undertext{#1}\enspace \vadjust{\penalty5000}}
  286. \let\subsec=\subsection
  287. \def\undertext#1{\vtop{\hbox{#1}\kern 1pt \hrule}}
  288. \def\ACK{\par\penalty-100\medskip \spacecheck\sectionminspace
  289.    \line{\fourteenrm\hfil ACKNOWLEDGEMENTS\hfil}\nobreak\vskip\headskip }
  290. \def\ack{\subsection{Acknowledgements:}}
  291. \def\APPENDIX#1#2{\par\penalty-300\vskip\chapterskip
  292.    \spacecheck\chapterminspace \chapterreset \xdef\chapterlabel{#1}
  293.    \titlestyle{APPENDIX #2} \nobreak\vskip\headskip \penalty 30000
  294.    \wlog{\string\Appendix~\chapterlabel} }
  295. \def\Appendix#1{\APPENDIX{#1}{#1}}
  296. \def\appendix{\APPENDIX{A}{}}
  297. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  298. %   Here come macros for equation numbering.
  299. \def\eqname#1{\rel@x {\pr@tect
  300.   \ifnum\equanumber<0 \xdef#1{{\rm(\number-\equanumber)}}%
  301.      \gl@bal\advance\equanumber by -1
  302.   \else \gl@bal\advance\equanumber by 1
  303.    \xdef#1{{\rm(\ifcn@@ \chapterlabel.\fi \number\equanumber)}}\fi
  304.   }#1}
  305. \def\eq{\eqname\?}
  306. \def\eqn{\eqno\eqname}
  307. \def\leqn{\leqno\eqname}
  308. \def\eqinsert#1{\noalign{\dimen@=\prevdepth \nointerlineskip
  309.    \setbox0=\hbox to\displaywidth{\hfil #1}
  310.    \vbox to 0pt{\kern 0.5\baselineskip\hbox{$\!\box0\!$}\vss}
  311.    \prevdepth=\dimen@}}
  312. \def\leqinsert#1{\eqinsert{#1\hfill}}
  313. \def\mideqn#1{\eqinsert{\eqname{#1}}}
  314. \def\midleqn#1{\leqinsert{\eqname{#1}}}
  315. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  316. %   Here come items and lists
  317. \def\GENITEM#1;#2{\par \hangafter=0 \hangindent=#1
  318.     \Textindent{$ #2 $}\ignorespaces}
  319. \outer\def\newitem#1=#2;{\gdef#1{\GENITEM #2;}}
  320. \let\Item=\item
  321. \newdimen\itemsize                \itemsize=30pt
  322. \newitem\item=1\itemsize;
  323. \newitem\sitem=1.75\itemsize;     \let\subitem=\sitem
  324. \newitem\ssitem=2.5\itemsize;     \let\subsubitem\ssitem
  325. \outer\def\newlist#1=#2{\toks0={#2}\toks1={#3}%
  326.    \count255=\escapechar \escapechar=-1
  327.    \alloc@0\list\countdef\insc@unt\listcount     \listcount=0
  328.    \edef#1{\par
  329.       \countdef\listcount=\the\allocationnumber
  330.       \advance\listcount by 1
  331.       \hangafter=0 \hangindent=#4
  332.       \Textindent{\the\toks0{\listcount}\the\toks1}}
  333.    \expandafter\expandafter\expandafter
  334.     \edef\c@t#1{begin}{\par
  335.       \countdef\listcount=\the\allocationnumber \listcount=1
  336.       \hangafter=0 \hangindent=#4
  337.       \Textindent{\the\toks0{\listcount}\the\toks1}}
  338.    \expandafter\expandafter\expandafter
  339.     \edef\c@t#1{con}{\par \hangafter=0 \hangindent=#4 \noindent}
  340.    \escapechar=\count255}
  341. \def\c@t#1#2{\csname\string#1#2\endcsname}
  342. \newlist\point=\Number&.&1.0\itemsize;
  343. \newlist\subpoint=(\alphabetic&)&1.75\itemsize;
  344. \newlist\subsubpoint=(\roman&)&2.5\itemsize;
  345. \let\spoint=\subpoint             \let\sspoint=\subsubpoint
  346. \let\spointbegin=\subpointbegin   \let\sspointbegin=\subsubpointbegin
  347. \let\spointcon=\subpointcon       \let\sspointcon=\subsubpointcon
  348. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  349. %   Here come macros for references, figures & tables.
  350. % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
  351. %%  First, references.
  352. \newcount\referencecount     \referencecount=0
  353. \newcount\lastrefsbegincount \lastrefsbegincount=0
  354. \newif\ifreferenceopen       \newwrite\referencewrite
  355. \newdimen\refindent          \refindent=30pt
  356. \def\normalrefmark#1{\attach{\scriptscriptstyle [ #1 ] }}
  357. \let\PRrefmark=\attach
  358. \def\NPrefmark#1{\step@ver{{\;[#1]}}}
  359. \def\refmark#1{\rel@x\ifPhysRev\PRrefmark{#1}\else\normalrefmark{#1}\fi}
  360. \def\refend@{\refmark{\number\referencecount}}
  361. \def\refend{\refend@{}\space }
  362. \def\refsend{\refmark{\count255=\referencecount
  363.    \advance\count255 by-\lastrefsbegincount
  364.    \ifcase\count255 \number\referencecount
  365.    \or \number\lastrefsbegincount,\number\referencecount
  366.    \else \number\lastrefsbegincount-\number\referencecount \fi}\space }
  367. \def\REFNUM#1{\rel@x \gl@bal\advance\referencecount by 1
  368.     \xdef#1{\the\referencecount }}
  369. \def\Refnum#1{\REFNUM #1\refend@ } \let\refnum=\Refnum
  370. \def\REF#1{\REFNUM #1\R@FWRITE\ignorespaces}
  371. \def\Ref#1{\Refnum #1\REFWRITE }
  372. \def\ref{\Ref\?}
  373. \def\REFS#1{\REFNUM #1\gl@bal\lastrefsbegincount=\referencecount
  374.     \REFWRITE }
  375. \def\refs{\REFS\?}
  376. \def\refc{\REF\?}
  377. \let\refscon=\refc       \let\REFSCON=\REF
  378. \def\r@fitem#1{\par \hangafter=0 \hangindent=\refindent \Textindent{#1}}
  379. \def\refitem#1{\r@fitem{#1.}}
  380. \def\NPrefitem#1{\r@fitem{[#1]}}
  381. \def\NPrefs{\let\refmark=\NPrefmark \let\refitem=NPrefitem}
  382. \def\REFWRITE{\R@FWRITE\rel@x }
  383. \def\R@FWRITE#1{\ifreferenceopen \else \gl@bal\referenceopentrue
  384.      \immediate\openout\referencewrite=\jobname.refs
  385.      \toks@={\begingroup \refoutspecials \catcode`\^^M=10 }%
  386.      \immediate\write\referencewrite{\the\toks@}\fi
  387.     \immediate\write\referencewrite{\noexpand\refitem %
  388.                                     {\the\referencecount}}%
  389.     \p@rse@ndwrite \referencewrite #1}
  390. \begingroup
  391.  \catcode`\^^M=\active \let^^M=\relax %
  392.  \gdef\p@rse@ndwrite#1#2{\begingroup \catcode`\^^M=12 \newlinechar=`\^^M%
  393.          \chardef\rw@write=#1\sc@nlines#2}%
  394.  \gdef\sc@nlines#1#2{\sc@n@line \g@rbage #2^^M\endsc@n \endgroup #1}%
  395.  \gdef\sc@n@line#1^^M{\expandafter\toks@\expandafter{\deg@rbage #1}%
  396.          \immediate\write\rw@write{\the\toks@}%
  397.          \futurelet\n@xt \sc@ntest }%
  398. \endgroup
  399. \def\sc@ntest{\ifx\n@xt\endsc@n \let\n@xt=\rel@x
  400.        \else \let\n@xt=\sc@n@notherline \fi \n@xt }
  401. \def\sc@n@notherline{\sc@n@line \g@rbage }
  402. \def\deg@rbage#1{}
  403. \let\g@rbage=\relax    \let\endsc@n=\relax
  404. \def\refout{\par\penalty-400\vskip\chapterskip
  405.    \spacecheck\referenceminspace
  406.    \ifreferenceopen \Closeout\referencewrite \referenceopenfalse \fi
  407.    \line{\fourteenrm\hfil REFERENCES\hfil}\vskip\headskip
  408.    \input \jobname.refs
  409. \def\refoutspecials{\sfcode`\.=1000 \interlinepenalty=1000
  410.          \rightskip=\z@ plus 1em minus \z@ }
  411. \def\Closeout#1{\toks0={\par\endgroup}\immediate\write#1{\the\toks0}%
  412.    \immediate\closeout#1}
  413. % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
  414. %%  Next, figure captions and table captions.
  415. \newcount\figurecount     \figurecount=0
  416. \newcount\tablecount      \tablecount=0
  417. \newif\iffigureopen       \newwrite\figurewrite
  418. \newif\iftableopen        \newwrite\tablewrite
  419. \def\FIGNUM#1{\rel@x \gl@bal\advance\figurecount by 1
  420.     \xdef#1{\the\figurecount}}
  421. \def\FIGURE#1{\FIGNUM #1\F@GWRITE\ignorespaces }
  422. \let\FIG=\FIGURE
  423. \def\Fig{\FIGNUM\?Figure~\?\FIGWRITE }
  424. \def\fig{\FIGNUM\?figure~\?\FIGWRITE }
  425. \def\figitem#1{\r@fitem{#1)}}
  426. \def\FIGWRITE{\F@GWRITE\rel@x }
  427. \def\TABNUM#1{\rel@x \gl@bal\advance\tablecount by 1
  428.     \xdef#1{\the\tablecount}}
  429. \def\TABLE#1{\TABNUM #1\T@BWRITE\ignorespaces }
  430. \def\Table{\TABNUM\?Table~\?\TABWRITE }
  431. \def\tabitem#1{\r@fitem{#1:}}
  432. \def\TABWRITE{\T@BWRITE\rel@x }
  433. \def\F@GWRITE#1{\iffigureopen \else \gl@bal\figureopentrue
  434.      \immediate\openout\figurewrite=\jobname.figs
  435.      \toks@={\begingroup \catcode`\^^M=10 }%
  436.      \immediate\write\figurewrite{\the\toks@}\fi
  437.     \immediate\write\figurewrite{\noexpand\figitem %
  438.                                  {\the\figurecount}}%
  439.     \p@rse@ndwrite \figurewrite #1}
  440. \def\T@BWRITE#1{\iftableopen \else \gl@bal\tableopentrue
  441.      \immediate\openout\tablewrite=\jobname.tabs
  442.      \toks@={\begingroup \catcode`\^^M=10 }%
  443.      \immediate\write\tablewrite{\the\toks@}\fi
  444.     \immediate\write\tablewrite{\noexpand\tabitem %
  445.                                  {\the\tablecount}}%
  446.     \p@rse@ndwrite \tablewrite #1}
  447. \def\figout{\par\penalty-400
  448.    \vskip\chapterskip\spacecheck\referenceminspace
  449.    \iffigureopen \Closeout\figurewrite \figureopenfalse \fi
  450.    \line{\fourteenrm\hfil FIGURE CAPTIONS\hfil}\vskip\headskip
  451.    \input \jobname.figs
  452. \def\tabout{\par\penalty-400
  453.    \vskip\chapterskip\spacecheck\referenceminspace
  454.    \iftableopen \Closeout\tablewrite \tableopenfalse \fi
  455.    \line{\fourteenrm\hfil TABLE CAPTIONS\hfil}\vskip\headskip
  456.    \input \jobname.tabs
  457. % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
  458. %%  Finally, inserted figures.
  459. \newbox\picturebox
  460. \def\p@cht{\ht\picturebox }
  461. \def\p@cwd{\wd\picturebox }
  462. \def\p@cdp{\dp\picturebox }
  463. \newdimen\xshift
  464. \newdimen\yshift
  465. \newdimen\captionwidth
  466. \newskip\captionskip
  467. \captionskip=15pt plus 5pt minus 3pt
  468. \def\fullwidth{\captionwidth=\hsize }
  469. \newtoks\Caption
  470. \newif\ifcaptioned
  471. \newif\ifselfcaptioned
  472. \def\caption{\captionedtrue \Caption }
  473. \newcount\linesabove
  474. \newif\iffileexists
  475. \newtoks\picfilename
  476. \def\fil@#1 {\fileexiststrue \picfilename={#1}}
  477. \def\file#1{\if=#1\let\n@xt=\fil@ \else \def\n@xt{\fil@ #1}\fi \n@xt }
  478. \def\pl@t{\begingroup \pr@tect
  479.     \setbox\picturebox=\hbox{}\fileexistsfalse
  480.     \let\height=\p@cht \let\width=\p@cwd \let\depth=\p@cdp
  481.     \xshift=\z@ \yshift=\z@ \captionwidth=\z@
  482.     \Caption={}\captionedfalse
  483.     \linesabove =0 \picturedefault }
  484. \def\plot{\pl@t \selfcaptionedfalse }
  485. \def\Picture#1{\gl@bal\advance\figurecount by 1
  486.     \xdef#1{\the\figurecount}\pl@t \selfcaptionedtrue }
  487. \def\picture{\Picture\?}
  488. \def\s@vepicture{\iffileexists \parsefilename \redopicturebox \fi
  489.    \ifdim\captionwidth>\z@ \else \captionwidth=\p@cwd \fi
  490.    \xdef\lastpicture{\iffileexists
  491.         \setbox0=\hbox{\raise\the\yshift \vbox{%
  492.               \moveright\the\xshift\hbox{\picturedefinition}}}%
  493.         \else \setbox0=\hbox{}\fi
  494.          \ht0=\the\p@cht \wd0=\the\p@cwd \dp0=\the\p@cdp
  495.          \vbox{\hsize=\the\captionwidth \line{\hss\box0 \hss }%
  496.               \ifcaptioned \vskip\the\captionskip \noexpand\Tenpoint
  497.                 \ifselfcaptioned Figure~\the\figurecount.\enspace \fi
  498.                 \the\Caption \fi }}%
  499.     \endgroup }
  500. \let\endpicture=\s@vepicture
  501. \def\savepicture#1{\s@vepicture \global\let#1=\lastpicture }
  502. \def\displaypicture{\fullwidth \s@vepicture $$\lastpicture $${}}
  503. \def\toppicture{\fullwidth \s@vepicture \topinsert
  504.     \lastpicture \medskip \endinsert }
  505. \def\midpicture{\fullwidth \s@vepicture \midinsert
  506.     \lastpicture \endinsert }
  507. %  Wraparound macros - a try.
  508. \def\leftpicture{\pres@tpicture
  509.     \dimen@i=\hsize \advance\dimen@i by -\dimen@ii
  510.     \setbox\picturebox=\hbox to \hsize {\box0 \hss }%
  511.     \wr@paround }
  512. \def\rightpicture{\pres@tpicture
  513.     \dimen@i=\z@
  514.     \setbox\picturebox=\hbox to \hsize {\hss \box0 }%
  515.     \wr@paround }
  516. \def\pres@tpicture{\gl@bal\linesabove=\linesabove
  517.     \s@vepicture \setbox\picturebox=\vbox{
  518.          \kern \linesabove\baselineskip \kern 0.3\baselineskip
  519.          \lastpicture \kern 0.3\baselineskip }%
  520.     \dimen@=\p@cht \dimen@i=\dimen@
  521.     \advance\dimen@i by \pagetotal
  522.     \par \ifdim\dimen@i>\pagegoal \vfil\break \fi
  523.     \dimen@ii=\hsize
  524.     \advance\dimen@ii by -\parindent \advance\dimen@ii by -\p@cwd
  525.     \setbox0=\vbox to\z@{\kern-\baselineskip \unvbox\picturebox \vss }}
  526. \def\wr@paround{\Caption={}\count255=1
  527.     \loop \ifnum \linesabove >0
  528.          \advance\linesabove by -1 \advance\count255 by 1
  529.          \advance\dimen@ by -\baselineskip
  530.          \expandafter\Caption \expandafter{\the\Caption \z@ \hsize }%
  531.       \repeat
  532.     \loop \ifdim \dimen@ >\z@
  533.          \advance\count255 by 1 \advance\dimen@ by -\baselineskip
  534.          \expandafter\Caption \expandafter{%
  535.              \the\Caption \dimen@i \dimen@ii }%
  536.       \repeat
  537.     \edef\n@xt{\parshape=\the\count255 \the\Caption \z@ \hsize }%
  538.     \par\noindent \n@xt \strut \vadjust{\box\picturebox }}
  539. \let\picturedefault=\relax
  540. \let\parsefilename=\relax
  541. \def\redopicturebox{\let\picturedefinition=\rel@x
  542.    \errhelp=\disabledpictures
  543.    \errmessage{This version of TeX cannot handle pictures.  Sorry.}}
  544. \newhelp\disabledpictures
  545.      {You will get a blank box in place of your picture.}
  546. % Above definitions of \parsefilename and \redopicturebox
  547. % are dumb defaults.  Actual definition are system dependent;
  548. % you will probably find them in your PHYZZX.LOCAL file.
  549. % The example below is used at Princeton.
  550. %\def\parsefilename{\expandafter\p@rse\the\picfilename.\endp@rse }
  551. %\def\p@rse#1.#2\endp@rse{\if"#2"\expandafter\picfilename
  552. %        \expandafter{\the\picfilename.fig}\fi }
  553. %\newread\pictureread
  554. %\def\redopicturebox{\expandafter\openin\expandafter\pictureread
  555. %                    \the\picfilename
  556. %   \ifeof\pictureread \errhelp=\disabledpictures
  557. %     \edef\n@xt{\errmessage={Cannot find file \the\picfilename}\n@xt
  558. %     \let\pictureboxdefinition=\relax \else
  559. %    \read\pictureread to\y@p \read\pictureread to\y@p
  560. %    \read\pictureread to\x@p \read\pictureread to\y@m
  561. %    \read\pictureread to\x@m \closein\pictureread
  562. %    \p@cht=\y@p truein \advance\p@cht by -\y@m truein
  563. %    \advance\yshift by \y@p truein
  564. %    \p@cwd=\x@p truein \advance\p@cwd by -\x@m truein
  565. %    \advance\xshift by \x@m truein
  566. %    \edef\picturedefinition{\special{pos,inc=\the\picfilename}}%
  567. %    \fi }
  568. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  569. %   Here come macros for memos & letters.
  570. \def\FRONTPAGE{\ifvoid255\else\vfill\penalty-20000\fi
  571.    \gl@bal\pagenumber=1     \gl@bal\chapternumber=0
  572.    \gl@bal\equanumber=0     \gl@bal\sectionnumber=0
  573.    \gl@bal\referencecount=0 \gl@bal\figurecount=0
  574.    \gl@bal\tablecount=0     \gl@bal\frontpagetrue
  575.    \gl@bal\lastf@@t=0       \gl@bal\footsymbolcount=0
  576.    \gl@bal\cn@@false }
  577. \let\Frontpage=\FRONTPAGE
  578. \def\papers{\papersize\headline=\paperheadline\footline=\paperfootline}
  579. \def\papersize{\hsize=35pc \vsize=50pc \hoffset=0pc \voffset=1pc
  580.    \advance\hoffset by\HOFFSET \advance\voffset by\VOFFSET
  581.    \pagebottomfiller=0pc
  582.    \skip\footins=\bigskipamount \normalspace }
  583. \papers  %  This is the default
  584. % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
  585. \newskip\lettertopskip       \lettertopskip=20pt plus 50pt
  586. \newskip\letterbottomskip    \letterbottomskip=\z@ plus 100pt
  587. \newskip\signatureskip       \signatureskip=40pt plus 3pt
  588. \def\lettersize{\hsize=6.5in \vsize=8.5in \hoffset=0in \voffset=0.5in
  589.    \advance\hoffset by\HOFFSET \advance\voffset by\VOFFSET
  590.    \pagebottomfiller=\letterbottomskip
  591.    \skip\footins=\smallskipamount \multiply\skip\footins by 3
  592.    \singlespace }
  593. \def\MEMO{\lettersize \headline=\letterheadline \footline={\hfil }%
  594.    \let\rule=\memorule \FRONTPAGE \memohead }
  595. \let\memo=\MEMO
  596. \def\memodate{\afterassignment\MEMO \date }
  597. \def\memit@m#1{\smallskip \hangafter=0 \hangindent=1in
  598.     \Textindent{\caps #1}}
  599. \def\subject{\memit@m{Subject:}}
  600. \def\topic{\memit@m{Topic:}}
  601. \def\from{\memit@m{From:}}
  602. \def\to{\rel@x \ifmmode \rightarrow \else \memit@m{To:}\fi }
  603. \def\memorule{\medskip\hrule height 1pt\bigskip}  % default definitions
  604. \def\memohead{\centerline{\fourteenrm MEMORANDUM}}% see phyzzx.local
  605. \newwrite\labelswrite
  606. \newtoks\rw@toks
  607. \def\letters{\lettersize
  608.    \headline=\letterheadline \footline=\letterfootline
  609.    \immediate\openout\labelswrite=\jobname.lab}
  610. \def\letter{\FRONTPAGE \letterhead \addressee }
  611. \let\letterhead=\rel@x
  612. \def\addressee#1{\medskip\line{\hskip 0.75\hsize plus\z@ minus 0.25\hsize
  613.                                \the\date \hfil }%
  614.    \vskip \lettertopskip
  615.    \ialign to\hsize{\strut ##\hfil\tabskip 0pt plus \hsize \crcr #1\crcr}
  616.    \writelabel{#1}\medskip \noindent\hskip -\spaceskip \ignorespaces }
  617. \def\rwl@begin#1\cr{\rw@toks={#1\crcr}\rel@x
  618.    \immediate\write\labelswrite{\the\rw@toks}\futurelet\n@xt\rwl@next}
  619. \def\rwl@next{\ifx\n@xt\rwl@end \let\n@xt=\rel@x
  620.       \else \let\n@xt=\rwl@begin \fi \n@xt}
  621. \let\rwl@end=\rel@x
  622. \def\writelabel#1{\immediate\write\labelswrite{\noexpand\labelbegin}
  623.      \rwl@begin #1\cr\rwl@end
  624.      \immediate\write\labelswrite{\noexpand\labelend}}
  625. \newtoks\FromAddress         \FromAddress={}
  626. \newtoks\sendername          \sendername={}
  627. \newbox\FromLabelBox
  628. \newdimen\labelwidth          \labelwidth=6in
  629. \def\makelabels{\afterassignment\Makelabels \sendername=}
  630. \def\Makelabels{\FRONTPAGE \letterinfo={\hfil } \MakeFromBox
  631.      \immediate\closeout\labelswrite  \input \jobname.lab\vfil\eject}
  632. \let\labelend=\rel@x
  633. \def\labelbegin#1\labelend{\setbox0=\vbox{\ialign{##\hfil\cr #1\crcr}}
  634.      \MakeALabel }
  635. \def\MakeFromBox{\gl@bal\setbox\FromLabelBox=\vbox{\Tenpoint
  636.      \ialign{##\hfil\cr \the\sendername \the\FromAddress \crcr }}}
  637. \def\MakeALabel{\vskip 1pt \hbox{\vrule \vbox{
  638.         \hsize=\labelwidth \hrule\bigskip
  639.         \leftline{\hskip 1\parindent \copy\FromLabelBox}\bigskip
  640.         \centerline{\hfil \box0 } \bigskip \hrule
  641.         }\vrule } \vskip 1pt plus 1fil }
  642. \def\signed#1{\par \nobreak \bigskip \dt@pfalse \begingroup
  643.   \everycr={\noalign{\nobreak
  644.             \ifdt@p\vskip\signatureskip\gl@bal\dt@pfalse\fi }}%
  645.   \tabskip=0.5\hsize plus \z@ minus 0.5\hsize
  646.   \halign to\hsize {\strut ##\hfil\tabskip=\z@ plus 1fil minus \z@\crcr
  647.           \noalign{\gl@bal\dt@ptrue}#1\crcr }%
  648.   \endgroup \bigskip }
  649. \def\copies{\par\hang\textindent{\tenrm cc:}}
  650. \def\endletter{\par \iffrontpage \else \vfil \fi \supereject }
  651. \newbox\letterb@x
  652. \def\lettertext{\par \vskip\parskip \unvcopy\letterb@x \par }
  653. \def\multiletter{\setbox\letterb@x=\vbox\bgroup
  654.       \everypar{\vrule height 1\baselineskip depth 0pt width 0pt }
  655.       \singlespace \topskip=\baselineskip }
  656. \def\letterend{\par\egroup}
  657. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  658. %   Here come macros for title pages.
  659. \newskip\frontpageskip
  660. \newtoks\Pubnum   \let\pubnum=\Pubnum
  661. \newtoks\Pubtype  \let\pubtype=\Pubtype
  662. \newif\ifp@bblock  \p@bblocktrue
  663. \def\PH@SR@V{\doubl@true \baselineskip=24.1pt plus 0.2pt minus 0.1pt
  664.              \parskip= 3pt plus 2pt minus 1pt }
  665. \def\PHYSREV{\papers\PhysRevtrue\PH@SR@V}
  666. \let\physrev=\PHYSREV
  667. \def\titlepage{\FRONTPAGE\papers\ifPhysRev\PH@SR@V\fi
  668.    \ifp@bblock\p@bblock \else\hrule height\z@ \rel@x \fi }
  669. \def\nopubblock{\p@bblockfalse}
  670. \def\endpage{\vfil\break}
  671. \frontpageskip=12pt plus .5fil minus 2pt
  672. \Pubtype={}
  673. \Pubnum={}
  674. \def\p@bblock{\begingroup \tabskip=\hsize minus \hsize
  675.    \baselineskip=1.5\ht\strutbox \topspace-2\baselineskip
  676.    \halign to\hsize{\strut ##\hfil\tabskip=0pt\crcr
  677.        \the\Pubnum\crcr\the\date\crcr\the\pubtype\crcr}\endgroup}
  678. \def\title#1{\vskip\frontpageskip \titlestyle{#1} \vskip\headskip }
  679. \def\author#1{\vskip\frontpageskip\titlestyle{\twelvecp #1}\nobreak}
  680. \def\andauthor{\vskip\frontpageskip\centerline{and}\author}
  681. \def\authors{\vskip\frontpageskip\noindent}
  682. \def\address#1{\par\kern 5pt\titlestyle{\twelvepoint\it #1}}
  683. \def\andaddress{\par\kern 5pt \centerline{\sl and} \address}
  684. \def\SLAC{\address{Stanford Linear Accelerator Center\break
  685.       Stanford University, Stanford, California~94309}}
  686. \def\JHL{\address{Joseph Henry Laboratories\break
  687.       Princeton University\break Princeton, New Jersey 08544}}
  688. \def\abstract{\par\dimen@=\prevdepth \hrule height\z@ \prevdepth=\dimen@
  689.    \vskip\frontpageskip\centerline{\fourteenrm ABSTRACT}\vskip\headskip }
  690. \def\submit#1{\par\nobreak\vfil\nobreak\medskip
  691.    \centerline{Submitted to \sl #1}}
  692. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  693. %   Miscellaneous macros
  694. \def\ie{\hbox{\it i.e.}}       \def\etc{\hbox{\it etc.}}
  695. \def\eg{\hbox{\it e.g.}}       \def\cf{\hbox{\it cf.}}
  696. \def\etal{\hbox{\it et al.}}   \def\dash{\hbox{---}}
  697. \def\\{\rel@x \ifmmode \backslash \else {\tt\char`\\}\fi }
  698. \def\sequentialequations{\rel@x \if\equanumber<0 \else
  699.   \gl@bal\equanumber=-\equanumber \gl@bal\advance\equanumber by -1 \fi }
  700. \def\nextline{\unskip\nobreak\hfill\break}
  701. \let\brk=\nextline
  702. \def\subpar{\unskip\nobreak\vadjust{\allowbreak\vskip\parskip}%
  703.    \hskip\parfillskip\break}
  704. \def\journal#1(#3){\begingroup \let\journal=\dummyj@urnal
  705.     \unskip, \sl #1\unskip~\bf\ignorespaces #2\rm
  706.     (\afterassignment\j@ur \count255=#3), \endgroup\ignorespaces }
  707. \def\j@ur{\ifnum\count255<100 \advance\count255 by 1900 \fi
  708.           \number\count255 }
  709. \def\dummyj@urnal{%
  710.     \toks@={Reference foul up: nested \journal macros}%
  711.     \errhelp={Your forgot & or ( ) after the last \journal}%
  712.     \errmessage{\the\toks@ }}
  713. \def\cropen#1{\crcr\noalign{\vskip #1}}
  714. \def\crr{\cropen{3\jot }}
  715. \def\topspace{\hrule height 0pt depth 0pt \vskip}
  716. \def\coeff#1#2{{\textstyle{#1\over #2}}}
  717. \def\half{\coeff12 }
  718. \def\partder#1#2{{\partial #1\over\partial #2}}
  719. \def\Buildrel#1\under#2{\mathrel{\mathop{#2}\limits_{#1}}}
  720. \def\becomes#1{\mathchoice{\becomes@\scriptstyle{#1}}
  721.    {\becomes@\scriptstyle{#1}} {\becomes@\scriptscriptstyle{#1}}
  722.    {\becomes@\scriptscriptstyle{#1}}}
  723. \def\becomes@#1#2{\mathrel{\setbox0=\hbox{$\m@th #1{\,#2\,}$}%
  724.         \mathop{\hbox to \wd0 {\rightarrowfill}}\limits_{#2}}}
  725. \def\bra#1{\left\langle #1\right|}
  726. \def\ket#1{\left| #1\right\rangle}
  727. \def\braket#1#2{\VEV{#1 | #2}}
  728. \def\VEV#1{\left\langle #1\right\rangle}
  729. \let\vev=\VEV
  730. \def\Tr{\mathop{\rm Tr}\nolimits}
  731. \def\tr{\mathop{\rm tr}\nolimits}
  732. \let\int=\intop         \let\oint=\ointop
  733. \def\lsim{\mathrel{\mathpalette\@versim<}}
  734. \def\gsim{\mathrel{\mathpalette\@versim>}}
  735. \def\@versim#1#2{\vcenter{\offinterlineskip
  736.         \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr\sim\crcr } }}
  737. \def\big#1{{\hbox{$\left#1\vbox to 0.85\b@gheight{}\right.\n@space$}}}
  738. \def\Big#1{{\hbox{$\left#1\vbox to 1.15\b@gheight{}\right.\n@space$}}}
  739. \def\bigg#1{{\hbox{$\left#1\vbox to 1.45\b@gheight{}\right.\n@space$}}}
  740. \def\Bigg#1{{\hbox{$\left#1\vbox to 1.75\b@gheight{}\right.\n@space$}}}
  741. \def\){\mskip 2mu\nobreak }
  742. % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
  743. %   Finally, some bug fixings.
  744. \let\sec@nt=\sec
  745. \def\sec{\rel@x\ifmmode\let\n@xt=\sec@nt\else\let\n@xt\section\fi\n@xt}
  746. \def\obsolete#1{\message{Macro \string #1 is obsolete.}}
  747. \def\firstsec#1{\obsolete\firstsec \section{#1}}
  748. \def\firstsubsec#1{\obsolete\firstsubsec \subsection{#1}}
  749. \def\thispage#1{\obsolete\thispage \gl@bal\pagenumber=#1\frontpagefalse}
  750. \def\thischapter#1{\obsolete\thischapter \gl@bal\chapternumber=#1}
  751. \def\splitout{\obsolete\splitout\rel@x}
  752. \def\prop{\obsolete\prop \propto }
  753. \def\nextequation#1{\obsolete\nextequation \gl@bal\equanumber=#1
  754.    \ifnum\the\equanumber>0 \gl@bal\advance\equanumber by 1 \fi}
  755. \def\BOXITEM{\afterassigment\B@XITEM\setbox0=}
  756. \def\B@XITEM{\par\hangindent\wd0 \noindent\box0 }
  757. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  758. %   That's about it
  759. \def\phyzzx{PHY\setbox0=\hbox{Z}\copy0 \kern-0.5\wd0 \box0 X}
  760. \def\fmtname{phyzzx}        \def\fmtversion{0.94}
  761. \everyjob{\xdef\today{\monthname~\number\day, \number\year}
  762.         \input myphyx.tex }
  763. \message{ by V.K.}
  764. \input phyzzx.local
  765. \catcode`\@=12 % at signs are no longer letters
  766.